# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/8/24 0024 23:36
@Author : 测试开发工程师
@File : 9. swagger.demo1.py
@Software: PyCharm
============================
"""

# 第一种类型，了解即可
from flask import Flask
from flask_restx import Resource, Api, Namespace, fields

app = Flask(__name__)
# 配置版本号
api = Api(app, version='2.0')

hello_ns = Namespace('demo', description='demo学习')


@hello_ns.route("")
class Demo(Resource):
    # restful 风格的 get 方法
    @hello_ns.doc(params={'id': 'An ID'})
    def get(self):
        return {'code': 0, 'msg': 'get success'}

    post_model = api.model('PostModel', {
        # required 约束，是否为必填项
        'name': fields.String(description='The name', required=True),
        # enum 枚举类型，只允许在给定的值里面使用  -  没限制
        'type': fields.String(description='The object type', enum=['A', 'B']),
        # min 允许最小值 为0
        'age': fields.Integer(min=0),
    })

    # restful 风格的 post 方法
    @hello_ns.doc(body=post_model)
    def post(self):
        return {'code': 0, 'msg': 'post success'}


api.add_namespace(hello_ns, '/hello')

if __name__ == '__main__':
    app.run(debug=True)
